package main

import "fmt"

//type ListNode struct {
//	Val int
//	Next *ListNode
//}

/*
移除头结点和移除其他节点的操作是不一样的，因为链表的其他节点都是通过前一个节点来移除当前节点，而头结点没有前一个节点。
问题：那么可不可以 以一种统一的逻辑来移除 链表的节点呢。
解答：其实可以设置一个虚拟头结点，这样原链表的所有节点就都可以按照统一的方式进行移除了。
（注：最后呢在题目中，return 头结点的时候，别忘了 return dummyNode->next;， 这才是新的头结点）


*/

//func removeElements(head *ListNode,val int) *ListNode{
//	head1 :=&ListNode{}
//	head1 =head
//	for head1.Next !=nil{
//		if head1.Next.Val ==val{
//			head1.Next=head1.Next.Next
//		}else{
//			head1=head.Next
//		}
//
//	}
//	return head1
//}
//
//
//func removeElements(head *ListNode, val int) *ListNode {
//	dummyHead := &ListNode{Next: head}
//	for tmp := dummyHead; tmp.Next != nil; {
//		if tmp.Next.Val == val {
//			tmp.Next = tmp.Next.Next
//		} else {
//			tmp = tmp.Next
//		}
//	}
//	return dummyHead.Next
//}

func main(){
	var nums = []int{1,233,34}
	mid := len(nums)/2
	fmt.Println(mid)
}